package com.plian.system.entity.yth.nsgl;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.plian.system.entity.yth.YthBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;

/**
 * 审计整改清单-业务流程主表实体类
 *
 * @author zke
 * @since 2023-03-06
 */
@Data
@TableName("collection_problem_main")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ProblemMain对象", description = "审计整改清单-业务流程主表")
public class ProblemMain extends YthBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 整改进度(1.问题清单 2.目标清单 3.整改清单 4.整改认定)
     */
    @ApiModelProperty(value = "整改进度(1.问题清单 2.目标清单 3.整改清单 4.整改认定)")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer auditProgress;
    /**
     * 问题发生单位名称
     */
    @ApiModelProperty(value = "问题发生单位名称")
    private String problemUnitNm;
    /**
     * 发现问题时间
     */
    @ApiModelProperty(value = "发现问题时间")
    private String problemDate;

    /**
     * 租户id
     */
    @ApiModelProperty(hidden = true)
    private String tenantId;

    /**
     * 最新记录子表ID
     */
    @ApiModelProperty(value = "发现问题ID")
    private Long problemId;

    /**
     * 当前流程状态id
     */
    @ApiModelProperty(value = "当前流程状态id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long processStatusId;
    /**
     * 当前流程id
     */
    @ApiModelProperty(value = "当前流程id")
    private String processInstanceId;
    /**
     * 是否生效（完整流程已通过）
     */
    @ApiModelProperty(value = "是否生效（完整流程已通过）")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer isEnabled;

    /**
     * 填报日期
     */
    @ApiModelProperty(value = "填报日期")
    private LocalDate reportTime;
    /**
     * 填报组织id
     */
    @ApiModelProperty(value = "填报组织id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long reportOrgId;
    /**
     * 填报组织名称
     */
    @ApiModelProperty(value = "填报组织名称")
    private String reportOrgName;
    /**
     * 填报人员id
     */
    @ApiModelProperty(value = "填报人员id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long reportUserId;
    /**
     * 填报人员名称
     */
    @ApiModelProperty(value = "填报人员名称")
    private String reportUserName;


}
